/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：MessageHandlerFactory.js<br>
 * 日期：2016年11月24日<br>
 * 作者: 王中山<br>
 * 功能：创建接收、发送消息处理的工厂<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2.WebSocket");

/**
 * 类型名称：Rainier.UI.V2.WebSocket.MessageHandlerFactory<br>
 * 类型功能：websocket<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.WebSocket.MessageHandlerFactory = Rainier.Basic.CompositeObject.extend({
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.SendMessageHandler.init<br>
	 * 函数功能：构造函数<br>
	 * 异常信息：无<br>
	 */
	init : function(){
		
		this._super();
		this.messageHandlerList = {};
		
		// this.initMessage();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.SendMessageHandler.<br>
	 * 函数功能：<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：<br>
	 * 异常信息：<br>
	 */
	initMessage : function(){
		this.messageHandlerList[USER_CMD_MSG] 			= new Rainier.UI.V2.WebSocket.CmdMsgSender();
		this.messageHandlerList[USER_SCENE_MSG]			= new Rainier.UI.V2.WebSocket.ScenceMsgSender();
		this.messageHandlerList[USER_CVI_INTER_MSG] 	= new Rainier.UI.V2.WebSocket.CviInterMsgSender();
		this.messageHandlerList[CMS_CMD_REPORT] 		= new Rainier.UI.V2.WebSocket.CmdReportMsgHandler();
		this.messageHandlerList[CMS_ENGIN_RESULT] 		= new Rainier.UI.V2.WebSocket.EngineResultMsgHandler();
		this.messageHandlerList[CMS_CVI_INTER_REPORT] 	= new Rainier.UI.V2.WebSocket.CviInterMsgHandler();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.SendMessageHandler.getMessageHandlerByTag<br>
	 * 函数功能：通过tagName获取相应的消息处理句柄<br>
	 * 参数输入：tagName ： String 标签名<br>
	 * 参数输出：无<br>
	 * 函数返回：messageHandler 消息处理句柄<br>
	 * 异常信息：无<br>
	 */
	getMessageHandlerByTag : function(tagName){
		if(!tagName){
			return null;
		}
		var messageHandler = this.messageHandlerList[tagName];
		if(!messageHandler){
			switch(tagName){
			case USER_CMD_MSG:
				messageHandler = new Rainier.UI.V2.WebSocket.CmdMsgSender();
				break;
			case USER_SCENE_MSG:
				messageHandler = new Rainier.UI.V2.WebSocket.ScenceMsgSender();
				break;
			case USER_CVI_INTER_MSG:
				messageHandler = new Rainier.UI.V2.WebSocket.CviInterMsgSender();
				break;
			case CMS_CMD_REPORT:
				messageHandler = new Rainier.UI.V2.WebSocket.CmdReportMsgHandler();
				break;
			case CMS_ENGIN_RESULT:
				messageHandler = new Rainier.UI.V2.WebSocket.EngineResultMsgHandler();
				break;
			case CMS_CVI_INTER_REPORT:
				messageHandler = new Rainier.UI.V2.WebSocket.CviInterMsgHandler();
				break;
			}
			this.messageHandlerList[tagName] = messageHandler;
		}
		return messageHandler;
	},
});